package org.dromara.bean.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.bean.domain.HisGoodsDetails;
import org.dromara.bean.domain.HisGoodsOrder;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.bean.domain.HisMemberAddress;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 商城订单视图对象 his_goods_order
 *
 * @author Lion Li
 * @date 2024-12-23
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HisGoodsOrder.class)
public class HisGoodsOrderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
//    @ExcelProperty(value = "id")
    private Long id;
    /**
     * 订单号
     */
    @ExcelProperty(value = "订单号")
    private String orderNumber;

    /**
     * 会员id
     */
//    @ExcelProperty(value = "会员id")
    private Long memberId;

    /**
     * 会员名称
     */
    @ExcelProperty(value = "会员名称")
    private String memberName;

    /**
     * 收货地址
     */
    @ExcelProperty(value = "收货地址")
    private String fullAddress;

    /**
     * 总金额
     */
    @ExcelProperty(value = "总金额")
    private BigDecimal totalPrice;

    /**
     * 支付金额
     */
    @ExcelProperty(value = "支付金额")
    private BigDecimal payPrice;


    /**
     * 快递单号
     */
    @ExcelProperty(value = "快递单号")
    private String logisticsNo;
    /**
     * 状态
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "commodity_status")
    private String status;


    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 支付时间
     */
    @ExcelProperty(value = "支付时间")
    private Date payTime;


    /**
     * 发货时间
     */
    @ExcelProperty(value = "发货时间")
    private Date deliveryTime;


    /**
     * 地址id
     */
    private Long addressId;


    /**
     * 快递公司
     */
    private Long logisticsCompanyId;


    /**
     * 数量
     */
    private Long count;


    /**
     * 商品详情列表
     */
    @ExcelProperty(value = "商品详情列表")
    @ColumnWidth(50)
    private List<HisGoodsDetailsVo> goodsOrderDetails;

    /**
     * 地址
     */
    private HisMemberAddress address;

    /**
     * 退款理由
     */
    private String  refundCause;

    private Integer zt;

}
